             
              I.1.   
                     ()



   2.   

   2.1.  

          
    .
   ,     FCB   ,
,       FCB,    
       
      ,   
  .
           -
 ( , ,  ).
    ,      ,    
FCB.FILENUM      :
 01-3F -   -,        
           ;
 41-7F -    + $40 -   ;
 C0-FF -      :
           FF-N    N  
          (N=0 -  ,  N - );
  00   -   :  .
        FCB.LOGDR  
  ,    -
   ; 0-    -
.        LOGDR  
   ,   -
  .
    ,    SG_DMA, SG_HIMEM, SG_DATA, SELDRIVE,
G_DEFDEV,       
  .    
     1   -
 (     ).  -
 (   ), ,  ,  -
      -
           
.
     AY     -
       A,   Y.


   2.2. RESETDOS -   /  

 :      A = 00.
 :  Y -  .
 : Y -   ( ).

     RESETDOS     
   .     -
     (  -
),   -       
 .      
       .
          
       
  #Q  .       -
         
.    - 0.
    :      -
       -
.     ,  ,    -
.


   2.3. CALLRWTS -   RWTS

 :      A = 02.
 :    RWTS (IOB: A000-A00E),
                   .
 :   RWTS,   .

        -
 RWTS       (.I.2).
          
   .
   !   RWTS   -
 ( DCT)           
.
    :  ,  ,  
;      /-
,  RWTS.


   2.4. S_DEFDEV -     

 :      A = 04.
 :  Y -    (0 - ),
                 X -   (0 - ).
 : .

         
  ,        
       (
     FF -  ).
       :
 -  Y=0      :  
        X (0 - )   
       (    )
       .
 - Y/=0     , 
     .
 -     Y  (01-3F),  ,  
     ,    X .
 -     Y  (C0-FF),   X    -
     ,      
      .
 -     X   ,  
    ;     -   ( -
     ,       -
    ).
 -          :
          ;
 -            
    :           
     ,         
    .
           
  (1-'A:', 2-'B:', 3-'C:'  ..).
           -
,       .
    :      .


   2.5. G_DEFDEV -     

 :      A = 06.
 :  X -   (0 - ).
 : A - N  ,
                 Y - N  .

           -
     -    ,  -
          FCB.
      .      
 ,  Y=0.
    :  N   .


   2.6. SELDRIVE -   

 :      A = 08.
 :  X -  N  (0 - );
                 Y -  N  (0 - .).
 : .

         -
       -
.      .
  
   X=0    . Y=0  
     .
    :       
 ,  N   .


   2.7. SG_DMA - /   

 :      A = 10 ($0A).
 :  YX =  (Y=0 - )
 : AY = .

    (  ),      Y=0
  DMA -        -
      , -
   RW_DATA, SEARCH, RENAME.   /-
    .


   2.8. SG_HIMEM - /   

 :      A = 12 ($0C).
 :  YX =  (Y=0 - ).
 : AY = .

    (  ),      Y=0
 HIMEM -       RW_
DATA.       HIMEM  
        
      .
         (. 2.18).


   2.9. SG_DATE - /  

 :      A = 14 ($0E).
 :  YX -   (Y=0 - ).
 : AY -  .

   ,   Y=0      ,  -
    .  -
 :
 :          Y                          X
   4 3 2 1 0 4 3 2    1 0 5 4 3 2 1 0
 :          A                          Y
   , ,  -   -
 ,    ( 0   1980).


   2.10. G_FREMEM -     

 :      A = 16 ($10).
 :  X - N  (0 - ).
 : YA -   .

       ,    -
.
    :  N   .


   2.11. G_DPB -     (DPB)

 :      A = 18 ($12).
 :  X - N  (0 - ).
 : (DMA)-> DPB  (16 ).

    DPB     DMA.
    :  N   .


   2.12. S_STATUS -     

 :     A = 20 ($14).
 :
   - Y -   ,  :
     [76] - 00:   .  (  POSITN),
            01:      (POSITN-32),
            1x:    ;
   - X -     (1 - );
   - (CURFILE)-> FCB,     :
     FCB.NAME   -   ,
     FCB.STATUS -    ,
     FCB.FILENUM,LOGDR -    ,
      Y[7]=0   FCB       
        SEARCH,PROTECT,DELETE  RENAME.
 :
   - Y = 00/FF -   /;
   - FCB        .

          
.
    :       
,       ,    
(    ).


   2.13. SEARCH -       
                     

 :     A = 22 ($16).
 :
   - Y -    ,  :
     [76] - 00:   .  (  POSITN),
            01:      (POSITN-32),
            1:    ;
     [0] - 1       -
               (  -
                );
   - (CURFILE)-> FCB,     :
     FCB.NAME   -   ,
     FCB.STATUS -  :
                  0 -     0,
                  1 -     ;
     FCB.FILENUM,LOGDR -    ,
      Y[7]=0   FCB       
        SEARCH,PROTECT,DELETE  RENAME.
 :
   - Y = 00:     ,
         FF:    ,
         7F:   ( .Y[0]=1);
   -     ,   (DMA)->  FPB,
       ;
   - FCB        .

         .
    :       
,    .


   2.14. DELETE -  /

 :     A = 24 ($18).
 :
   - Y -    ,  :
     [76] - 00:   .  (  POSITN),
            01:      (POSITN-32),
            1:    ;
     [0] - 0:  , 1:   ;
   - (CURFILE)-> FCB,     :
     FCB.NAME -   ,
     FCB.FILENUM,LOGDR -    ,
      Y[7]=0   FCB       
        SEARCH,PROTECT,DELETE  RENAME.
 :
   - Y = 00/FF -     /;
   - FCB        .

       ( FF       
)     .   -
         
  ,   .
    :       
,       ,    
(        ), -
   .


   2.15. RENAME -  

 :     A = 26 ($1A).
 :
   - Y -    ,  :
     [76] - 00:   .  (  POSITN),
            01:      (POSITN-32),
            1:    ;
     [0] - 0:        
                (DMA),
           1:     (DMA)  ;
   - (CURFILE)-> FCB,     :
     FCB.NAME -   ,
      Y[7]=0   FCB       
        SEARCH,PROTECT,DELETE  RENAME;
   - (DMA)+$20->    ( 15 ).
 :
   - Y = 00/FF -     /;
   - (DMA)->    ;
   - FCB        .

              
.             
: ,     .
             '*?'.
i-        ,
 i- '*'   ,     
'?'   .  '*'    
     .  , -
     (DMA).   
      (.Y[0]=1).
    :       
,       ,    
(        ).


   2.16. OPEN -      

 :     A = 28 ($1C).
 :
   - Y -    ,  :
     [0] -  - 0:  , 1:    ,
     [1] -    - 0: , 1:  ,
     [2] -    - 0: ,  1:  ,
     [3] - 0:         FILENUM,
           1:       X,
     [4] - 0:   , 1:  ,
     [76] - 00:   .  (  POSITN),
            01:      (POSITN-32),
            1:    ;
   -  Y[3]=1: X -  : ABC..->123; 0 - .
   - (CURFILE)-> FCB,     :
     FCB.FILENUM,LOGDR -    .
 :
   -  :
         FCB -    ,
      FCB.STATUS[7] -   (W)  ;
   -  :
      FCB.STATUS[6:0] - 0   / 1   ,
      FCB.RECLEN - 1 (  ) / 32 ( ),
      FCB.PARDIR - N       ( ),
      FCB.PAROFF -      ( ),
          FCB ;
   -    FCB:
      FCB.POSITN  = 0,
      FCB.RECIO   = 1,
      FCB.FILENUM -   ,
      FCB.LOGDR   -  .-,   .

         FCB    
   .
   :        
FCB     ( )! 
        0- .
    :      ,
     (  -
    ,        ),
 '?'  '*'    ,  -
  ,       
,    ,    .


   2.17. CLOSE -  :  

 :     A = 30 ($1E).
 :
   - Y -  ,  :
     [7] - 0:       (),
           1:      ;
   - (CURFILE)-> FCB,     :
     FCB.FILENUM -  N  (  );
     FCB.MODF[7] - 1: FPB ;  , :
             [0] - 1: - ., 0:  .
             [6] - 1:  , 1:     FCB
                           (FCB.STATUS)
 :
   - FCB  :
     FCB.FILENUM - 0,     ,
                 - N -,  .Y[7]=1.

      FCB   ( 
), , ..,    -
     ;   (
)  .       
     .
    :     FCB.
MODF         
 (   ,   FCB.DATE),
         ( 
   RENAME  S_STATUS).    -
    .
    :    (  ).


   2.18. RW_DATA - /  

 :     A = 32 ($20).
 :
   - Y -  ,  :
      [7] -  : 0: , 1: ,
      [6] -    : 0: , 1: ,
      [5] -    : 0: .[6], 1: ,
     [43] -   : 00:POSITN  , 01:POSITN
              ., 1X:FILELEN   ( ),
     [21] -  : 00:RECIO  , 01:RECIO  .
             , 1X:FILELEN-POSITN   ( ),
      [1] -    : 0:, 1:.,
      [0] -  HIMEM  : 1:., 0:.;
   - (CURFILE)-> FCB,     :
      FCB.POSITN  -      ( Y[4]=0),
      FCB.FILELEN -   ( Y[2]=1),
      FCB.RECLEN  -    ( Y[3,1]/=00),
      FCB.RECIO   -   ( Y[2]=0),
      FCB.FILENUM - N ,
      FCB.LOGDR   - N  (  ).
   -  : (DMA)->  .
 :
   - YA -      (+1);
   -  : (DMA)->    ;
   - FCB.POSITN -     .

           
        
,   ,    -
 .
    :    ,      
,   ( ).


   2.19. POSITN -    

 :     A = 34 ($22).
 :
   - Y -  ,  :
     [76] -   : 00:POSITN  , 01:POSITN
              ., 1X:FILELEN   ( ),
     (.  [43]  RW_DATA).
   - (CURFILE)-> FCB,     :
      FCB.POSITN  -      ( Y[7]=0),
      FCB.FILELEN -  ,
      FCB.RECLEN  -    ( Y[6]=1).
 :
   - FCB.POSITN -   .

        , 
,  ,    .


   2.20. CHKNAME -     

 :     A = 36 ($22)   (   1.5).
 :
   - Y - -   :
       = 0:    ,
      /= 0:    ,    
              DMA (  - $20);
   - (CURFILE)-> FCB,   FCB.NAME -    ;
        ;
   - (DMA) +0 ->  ,     (
      15 :    );
   - (DMA) +Y ->     ( 15 )
         0.
 :
   - Y[7] = 0/1:    / ;
   - (DMA)->    .

      ,    RENAME.  
         -
  :   , -
,    (DMA)  SEARCH  
.
          ,   
.


   2.21.   -     

             YA
  -  .  
        
 ,      .
 